package com.bp.system.service;

import java.util.List;

import com.bp.common.core.domain.TreeSelect;
import com.bp.system.domain.SysFileIndex;

/**
 * 用户目录Service接口
 *
 * @author shaominjie
 * @date 2021-01-13
 */
public interface ISysFileIndexService {
    /**
     * 查询用户目录
     *
     * @param indexId 用户目录ID
     * @return 用户目录
     */
    public SysFileIndex selectById(Long indexId);

    /**
     * 查询用户目录列表
     *
     * @param sysFileIndex 用户目录
     * @return 用户目录集合
     */
    public List<SysFileIndex> selectList(SysFileIndex sysFileIndex);

    /**
     * 新增用户目录
     *
     * @param sysFileIndex 用户目录
     * @return 结果
     */
    public int insert(SysFileIndex sysFileIndex);

    /**
     * 修改用户目录
     *
     * @param sysFileIndex 用户目录
     * @return 结果
     */
    public int update(SysFileIndex sysFileIndex);

    /**
     * 批量删除用户目录
     *
     * @param indexIds 需要删除的用户目录ID
     * @return 结果
     */
    public int deleteByIds(Long[] indexIds);

    /**
     * 删除用户目录信息
     *
     * @param indexId 用户目录ID
     * @return 结果
     */
    public int deleteById(Long indexId);

    /**
     * 查询用户目录列表
     *
     * @param userId 用户id
     * @return 用户目录集合
     */
    public List<SysFileIndex>  selectByUserId(Long userId);


    /**
     * 构建前端所需要下拉树结构
     *
     * @param indexList 列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect<Long>> buildTree(List<SysFileIndex> indexList);

    /**
     * 根据父级Id获取子集集合
     * @param parentId 父级id
     * @return
     */
    List<SysFileIndex> selectByParentId(Long parentId);
}
